package org.neurone.userspace.dao;

import java.util.List;

import org.neurone.domain.Application;
import org.neurone.domain.UserInfo;
import org.neurone.domain.UserConfig;
import org.neurone.domain.alter.UserInfoAlter;
import org.neurone.exception.PersistenceEntityNotFound;
import org.neurone.util.criteria.Criteria;

public interface UserInfoDao {

	void deleteUser(Long userID);

	UserInfo find(Long userID);

	Long newUser(UserInfo userInfo);

	List<UserInfo> search(Criteria terms, int pageSize, int pageIndex);


	void update(UserInfo userInfo);

	void updateConfig(Long userID, UserConfig userConfig);

	UserConfig getUserConfig(UserInfo userInfo);
	
	void assignApplication(Long userID, Long applicationID) ;
	void unassignApplication(Long userID, Long applicationID);
	List<Application> listAssignedApplication(Long userID);
}
